package com.lx.inter.condition;

import com.lx.wrapper.AbstractCommonConditionWrapper;
import com.lx.wrapper.AbstractWrapper;

/**
 * 通用条件项
 *
 * @author lx
 * @create 2023/2/24 23:58
 **/
public interface ICommonDefineCondition<ChildWrapper extends AbstractWrapper<?, ChildWrapper>> {
    /**
     * AND 条件
     *
     * @return
     */
    public ChildWrapper and();

    /**
     * 存在子条件项的AND条件
     *
     * @param childWrapper
     * @return
     */
    public ChildWrapper and(AbstractCommonConditionWrapper childWrapper);

    /**
     * NOT 条件
     *
     * @return
     */
    public ChildWrapper not();

    /**
     * OR条件
     *
     * @return
     */
    public ChildWrapper or();

    /**
     * 存在子条件项的OR条件
     *
     * @param childWrapper
     * @return
     */
    public ChildWrapper or(AbstractCommonConditionWrapper childWrapper);
}
